From 1e8467a2d4544b72b50ed85a787d4ddc1c8d55f4 Mon Sep 17 00:00:00 2001 From: Jimi Xenidis Date: Tue, 19 Dec 2006 09:20:58 -0500 Subject: [PATCH] [XEN][POWERPC] DomU real time clock based off of the real one in Dom0 Signed-off-by: Jimi Xenidis Signed-off-by: Hollis Blanchard --HG-- extra : transplant_source : %DBR%C7%D0C%BB%2A%7F%3D%C6%7FO/%B4%F6I%8B%92%E5X --- xen/arch/powerpc/domain.c | 19 +++++++++++-------- xen/arch/powerpc/time.c | 6 ------ xen/include/public/arch-powerpc.h | 2 +- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/xen/arch/powerpc/domain.c b/xen/arch/powerpc/domain.c index 45ed959945..b029628582 100644 --- a/xen/arch/powerpc/domain.c +++ b/xen/arch/powerpc/domain.c @@ -152,17 +152,20 @@ void vcpu_destroy(struct vcpu *v) int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_t *c) { + struct domain *d = v->domain; + memcpy(&v->arch.ctxt, &c->user_regs, sizeof(c->user_regs)); - printk("Domain[%d].%d: initializing\n", - v->domain->domain_id, v->vcpu_id); + printk("Domain[%d].%d: initializing\n", d->domain_id, v->vcpu_id); + + if (d->arch.htab.order == 0) + panic("Page table never allocated for Domain: %d\n", d->domain_id); + if (d->arch.rma_order == 0) + panic("RMA never allocated for Domain: %d\n", d->domain_id); - if (v->domain->arch.htab.order == 0) - panic("Page table never allocated for Domain: %d\n", - v->domain->domain_id); - if (v->domain->arch.rma_order == 0) - panic("RMA never allocated for Domain: %d\n", - v->domain->domain_id); + d->shared_info->wc_sec = dom0->shared_info->wc_sec; + d->shared_info->wc_nsec = dom0->shared_info->wc_nsec; + d->shared_info->arch.boot_timebase = dom0->shared_info->arch.boot_timebase; set_bit(_VCPUF_initialised, &v->vcpu_flags); diff --git a/xen/arch/powerpc/time.c b/xen/arch/powerpc/time.c index 3a26e2ace4..8f6bc70bda 100644 --- a/xen/arch/powerpc/time.c +++ b/xen/arch/powerpc/time.c @@ -85,12 +85,6 @@ void send_timer_event(struct vcpu *v) vcpu_unblock(v); } -/* Set clock to after 00:00:00 UTC, 1 January, 1970. */ -void do_settime(unsigned long secs, unsigned long usecs, u64 system_time_base) -{ - unimplemented(); -} - void update_vcpu_system_time(struct vcpu *v) { } diff --git a/xen/include/public/arch-powerpc.h b/xen/include/public/arch-powerpc.h index 267d6c6a91..9acb749e16 100644 --- a/xen/include/public/arch-powerpc.h +++ b/xen/include/public/arch-powerpc.h @@ -108,7 +108,7 @@ typedef struct vcpu_guest_context vcpu_guest_context_t; DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t); struct arch_shared_info { - uint64_t pad[32]; + uint64_t boot_timebase; }; struct arch_vcpu_info { -- 2.30.2